/*
 * kalib.c
 *
 * Created: 2012-07-06 13:16:47
 *  Author: Antrykot
 */ 

#include "main.h"
#include "lcd.h"
#include "sc-s.h"
#include "utils.h"
#include <stdlib.h>
#include "trans-s.h"

i8 calib_ptr_deep = 0;
i8 calib_ptr = 0;

u16 calib_gas = 0;
u8 cal_wait_flag = 0;

extern u8 cur_pos;
u16 last_time = 0;

u8 up_time = 0;		/// update time


void kalib_serwis(u8 mode, u16 value)
{
	lcd_home();
	tk_data = value;
	tk_addr = K_ADDR_SERWIS;
	tk_repeat = 3;

	if (mode) // KALC
	{
		lcd_print("SERWIS C");
	}
	else
	{
		lcd_print("SERWIS Z");
	} 
	tp_addr = P_ADDR_RESET_DEFAULTS;
	WAITMS(3000);
	calib_ptr_deep = 0;
	calib_ptr = CM_FAB;
}

void resetStartTimer()
{
	cli();
	TimerH = 0;
	TCNT1 = 0;
	TCCR1B = 0x05;		// Timer prescale 1024
	TIMSK1 |= (1 << TOIE1);
	sei();
}

void kalib_wait()
{
	u8 failed= 0;

	
	if (Ksp != 0)
	{
		lcd_home();
	}
	else
	{
		pin_ok = 0;
		ref_pin = 1979;
		
		pin_loop();
		
		if (pin_ok == 1)
		{
			cal_wait_flag = 2;
		}
		if (pin_ok == 255)
		{
			failed = 1;
		}
	}
	
	
	if (cal_wait_flag == 2)
	{
		lcd_home();
		lcd_print("ZEZWALAM");
		cal_wait_flag = 0;
		WAITMS(1000);
		Pro = PRO_CALIB;
		calib_ptr_deep = 0;
		calib_ptr = 0;
		resetStartTimer();
		last_time = 0;
		return;
	}
	
	if (TimerH > 0x02)			// ~180s (~2x64s + ~44s)
	{
		if (TCNT1 > 44000)
		{
			failed = 1;
		}
	}
	
	if (PINA & 0x02)		// linia odlaczona
	{
		failed = 1;
	}
	
	if (failed || !cal_wait_flag)
	{
		cal_wait_flag = 0;
		lcd_home();
		lcd_print("! BRAK !");
		tk_addr = K_ADDR_CAL_STOP;
		tk_data = 0;
		tk_repeat = 3;
		WAITMS(1000);
		lcd_home();
		lcd_print("ZEZWOLEN");
		WAITMS(2000);
		Pro = PRO_WORK;
	}
	
	WAITMS(200);
	return;
}


#ifdef MEDIA_CH4

void kalib_routin()
{
	
	u16 time;
	lcd_home();
	time = TimerH * 64 + (TCNT1 / 1000);
	
	if (!PLU || !MIN || !ENT || !last_time )
	{
		last_time = time;
	}

	if (time - last_time > 180 || time > 880)		// 60s/ 8min time out.
	{
		tp_addr = P_ADDR_RESET_DEFAULTS;
		tk_data = 1;
		
		tk_addr = K_ADDR_CAL_FINISH;		// finish error
		tk_data = 0;
		tk_repeat = 3;
		
		lcd_print(" !CZAS! ");
		WAITMS(1000);
		lcd_home();
		lcd_print("!KONIEC!");
		WAITMS(3000);
		Pro = PRO_WORK;
		Awp = _read(EEP_AWP);
		return;
	}

	switch (calib_ptr)
	{
		case CM_STWYS:
			if (calib_ptr_deep)
			{
				cal_high();
				return;
			}
			lcd_print(" ST.WYS ");
			if (!ENT)
			{
				calib_ptr_deep = 1;
				tp_addr = P_ADDR_SW_HRANGE;
				wait_deliver_P();
				return;
			}
			break;
		
		case CM_STNIS:
			if (calib_ptr_deep)
			{
				cal_low();
				return;
			}
			lcd_print(" ST.NIS ");
			if (!ENT)
			{
				calib_ptr_deep = 1;
				tp_addr = P_ADDR_SW_LRANGE;
				wait_deliver_P();
				WAITMS(200);
				return;
			}
			break;
		
		
		case CM_FAB:

			lcd_print("UST.FAB ");
			if (!ENT)
			{
				tp_addr = P_ADDR_L_RESET;
				lcd_home();
				lcd_print("ZAPIS...");
				wait_deliver_P();
				tp_addr = P_ADDR_H_RESET;
				wait_deliver_P();
				
				calib_ptr++;
				WAITMS(400);

				lcd_home();
				lcd_print("ZAPISANO");

				WAITMS(2000);
				return;
			}
			break;
		
		case CM_WYJ:
			if (calib_ptr_deep)
			{
				cal_out();
				return;
			}			

			lcd_print("WYJSCIE ");
			if (!ENT)
			{
				calib_ptr_deep = 1;
				while(!ENT);
				return;
			}
			break;
	}
	
	
	if (!PLU)
		calib_ptr++;
	if (!MIN)
		calib_ptr--;
		
	if (calib_ptr > CM_WYJ)
		calib_ptr = CM_STWYS;
		
	if (calib_ptr < CM_STWYS)
	{
		calib_ptr = CM_WYJ;
	}
	while((!PLU) || (!MIN) || (!ENT));
	
}

#endif

#ifdef MEDIA_CH4IR

void kalib_routin()
{
	
	u16 time;
	lcd_home();
	
	time = TimerH * 64 + (TCNT1 / 1000);
	
	if ((!PLU) || (!MIN) || (!ENT) )
	{
		last_time = time;
	}

	u8 failed = 0;
	
	if (time - last_time > 240)		// 4minutes without any ket
		failed = 1;
	if (time > 900)					// 15minutes for whole calib					
		failed = 1;

	//if (time - last_time > 180 || time > 880)		// 60s/ 8min time out.
	if (failed)		// 60s/ 8min time out.
	{
		//tp_addr = P_ADDR_RESET_DEFAULTS;
		//tk_data = 1;
		
		tk_data = 1;		/// err
		tk_addr = K_ADDR_CAL_FINISH;		// finish error
		tk_repeat = 3;
		
		lcd_print(" !CZAS! ");
		WAITMS(1000);
		lcd_home();
		lcd_print("!KONIEC!");
		WAITMS(3000);
		Pro = PRO_WORK;
		Awp = _read(EEP_AWP);
		
		/// TODO : just for time debuging
		write_word(4000,TimerH);
		write_word(4002,TCNT1);
		write_word(4004,time);
		write_word(4006,last_time);
		
		return;
	}

	switch (calib_ptr)
	{
		case CM_ZERO:
		if (calib_ptr_deep)
		{
			cal_zero();
			return;
		}
		
		lcd_print("ST.ZERO ");
		if (!ENT)
		{
			calib_ptr_deep = 1;
			up_time = 1;
			return;
		}
		break;
		
		case CM_STWYS:
		if (calib_ptr_deep)
		{
			cal_high();
			return;
		}
		
		lcd_print(" ST.WYS ");
		if (!ENT)
		{
			calib_ptr_deep = 1;
			tp_addr = P_ADDR_SW_HRANGE;
			wait_deliver_P();
			up_time = 1;
			return;
		}
		break;
		
		case CM_STNIS:
		if (calib_ptr_deep)
		{
			cal_low();
			return;
		}
		lcd_print(" ST.NIS ");
		if (!ENT)
		{
			calib_ptr_deep = 1;
			tp_addr = P_ADDR_SW_LRANGE;
			wait_deliver_P();
			up_time = 1;
			WAITMS(200);
			return;
		}
		break;
		
		
		case CM_FAB:
			lcd_print("UST.FAB ");
			if (!ENT)
			{
				tp_addr = P_ADDR_IR_INIT;
				lcd_home();
				lcd_print("ZAPIS...");
				wait_deliver_P();

				calib_ptr++;
				
				for (u8 c = 0; c < 255; c++)
				{
					WAITMS(30);
					
					if (meas == CODE_FACT)
					{
						lcd_home();
						lcd_print("ZAPISANO");

						WAITMS(2000);
						return;
					}
				}
				
				lcd_home();
				lcd_print("!Error! ");
				WAITMS(500);

				up_time = 1;
				

		}
		break;
		
		case CM_WYJ:
		if (calib_ptr_deep)
		{
			cal_out();
			return;
		}
		/*
		char text[10];
		itoa(time,text,10);
		lcd_print(text);
		lcd_print(",");
		itoa(last_time,text,10);
		lcd_print(text);
		*/

		lcd_print("WYJSCIE ");
		if (!ENT)
		{
			calib_ptr_deep = 1;
			up_time = 1;
			while(!ENT);
			return;
		}
		break;
	}
	
	
	if (!PLU)
	calib_ptr++;
	if (!MIN)
	calib_ptr--;
	
	if (calib_ptr > CM_WYJ)
	calib_ptr = CM_ZERO;
	
	if (calib_ptr < CM_ZERO)
	{
		calib_ptr = CM_WYJ;
	}
	while((!PLU) || (!MIN) || (!ENT) || up_time)
	{
		time = TimerH * 64 + (TCNT1 / 1000);
		last_time = time;
		up_time = 0;
	}
	
}
#endif


void cal_out()
{
	lcd_home();
	if (calib_ptr_deep == 1)
	{
		lcd_print("  NIE!  ");
		if (!ENT)
		{
			calib_ptr_deep = 0;
			calib_ptr = CM_STWYS;
#ifdef MEDIA_PD
			calib_ptr = 1;
#endif
			while(!ENT);
			return;
		}
		
		if (!PLU || !MIN)
		{
			calib_ptr_deep++;
			up_time = 1;
			while(!PLU || !MIN);
		}
		return;
	}
	
	if (calib_ptr_deep == 2)
	{
		lcd_print("  TAK!  ");
		if (!ENT)
		{
			up_time = 1;
			calib_ptr_deep = 0;
			calib_ptr = 0;
			Pro = PRO_WORK;
			lcd_home();
			lcd_print(" KONIEC ");
			tp_addr = P_ADDR_RESET_DEFAULTS;			// P_ READ DEFAULTS
			tp_data = 0x0000;
			
			tk_data = 0;
			tk_addr = K_ADDR_CAL_FINISH;
			tk_repeat = 3;
			Awp = _read(EEP_AWP);
			WAITMS(2000);
			return;
		}
		
		if (!PLU || !MIN)
		{
			up_time = 1;
			calib_ptr_deep--;
		}
		return;
	}
}

#ifdef MEDIA_CH4
void cal_high()
{
	char str[8];
	
	switch (calib_ptr_deep)
	{
		lcd_home();
		
		case 0x01:
		lcd_print(" POD.POW");
		tp_addr = P_ADDR_H_RESET;
		wait_deliver_P();
		
		WAITMS(3500);

		calib_ptr_deep++;
		break;
		case 0x02:
		show_media(meas,0x80);		// show spec
		if (!ENT)
		{
			if (meas & 0x2000)
			{
				if ((meas & 0x0FFF) > 80)	// -08.0%
				{
					kalib_serwis(0,(1 << 15));
					// TODO : Write serwis Z to K
					
					tp_addr = P_ADDR_RESET_DEFAULTS;
					WAITMS(500);
					return;
				}
			}
			else
			{
				if ((meas & 0x0FFF) > 80)	// +08.0%
				{
					kalib_serwis(0,(1 << 15));
					// TODO : Write serwis Z to K
					tp_addr = P_ADDR_RESET_DEFAULTS;
					WAITMS(500);
					return;
				}
				
			}
			p_ack = 0;
			tp_data = 0;
			tp_addr = P_ADDR_CALHZ;
			
			tk_data = (1 << 15);
			tk_addr = K_ADDR_HZ;
			tk_repeat = 3;
			// TODO : WRITE ZERO IN K
			
			calib_ptr_deep++;
			lcd_home();
			lcd_print("UST00.0%");
			wait_deliver_P();
			WAITMS(1000);
			lcd_print(" ZAPIS! ");
			WAITMS(1000);

		}
		break;
		case 0x03:
		lcd_print("UST.GAZ ");
		WAITMS(1000);
		calib_ptr_deep++;
		
		calib_gas = read_word(EEP_STW1);
		break;
		
		case 0x04:
		fuse1(str,calib_gas);
		lcd_print("GAZ:");
		lcd_print(str);
		lcd_print("  ");
		
		if (!PLU)
		{
			cur_pos ++;
			if (cur_pos > 9)
			{
				cur_pos = 9;
				calib_gas += 9;
			}
			calib_gas++;
			if (calib_gas > 999)
			calib_gas = 999;
		}
		
		if (!MIN)
		{
			cur_pos ++;
			if (cur_pos > 9)
			{
				cur_pos = 9;
				calib_gas -= 9;
			}
			calib_gas--;
			if (calib_gas < 250)
			calib_gas = 250;
		}
		if (PLU && MIN)
			cur_pos = 0;
		
		if (!ENT)
		{
			calib_ptr_deep++;
			lcd_home();
			lcd_print("POD.GAZ ");
			
			write_word(calib_gas,EEP_STW1);
			
			// TODO : WRITE GAS TO P & K
			
			
			WAITMS(2000);
		}
		break;
		
		case 0x05:
		show_media(meas,0x80);
		
		if (!ENT)
		{
			if (meas & 0x2000)	// 13bit
			{
				kalib_serwis(1,calib_gas | (1 << 15));
				tp_addr = P_ADDR_RESET_DEFAULTS;

				WAITMS(500);
				//tp_data = calib_gas;
				//tp_data |= (1 << 15);
				//tp_addr = P_ADDR_CALHS;

				return;
			}
			else 
			{
				if (((meas & 0x0FFF) < calib_gas - 120) || ((meas & 0x0FFF) > calib_gas + 120))
				{
					kalib_serwis(1,calib_gas | (1 << 15));
					tp_addr = P_ADDR_RESET_DEFAULTS;

					WAITMS(500);
					//tp_data = calib_gas;
					//tp_data |= (1 << 15);
					//tp_addr = P_ADDR_CALHS;

					return;
				}
				
			}

			tp_data = calib_gas;
			tp_addr = P_ADDR_CALHS;
			
			tk_data = calib_gas | (1 << 15);
			tk_addr = K_ADDR_HS;
			tk_repeat = 3;
			
			
			lcd_home();
			lcd_print("UST");
			fuse1(str,calib_gas);
			lcd_print(str);
			lcd_print("%");
			WAITMS(2000);
			lcd_print(" ZAPIS! ");
			WAITMS(1000);
			calib_ptr_deep = 0;
			calib_ptr = CM_STNIS;
		}
		
	}
	
	
}
#elif defined(MEDIA_CH4IR)

void cal_high()
{
	char str[8];
	u8 wait = 0;
	lcd_home();
	
	switch (calib_ptr_deep)
	{

		case 0x01:
		lcd_print("UST.GAZ ");
		WAITMS(1000);
		calib_ptr_deep++;
		
		calib_gas = read_word(EEP_STW1);
		break;
		
		case 0x02:
		fuse1(str,calib_gas);
		lcd_print("GAZ:");
		lcd_print(str);
		lcd_print("  ");
		
		if (!PLU)
		{
			cur_pos ++;
			if (cur_pos > 9)
			{
				cur_pos = 9;
				calib_gas += 9;
			}
			calib_gas++;
			if (calib_gas > 999)
			calib_gas = 999;
		}
		
		if (!MIN)
		{
			cur_pos ++;
			if (cur_pos > 9)
			{
				cur_pos = 9;
				calib_gas -= 9;
			}
			calib_gas--;
			if (calib_gas < 250)
			calib_gas = 250;
		}
		if (PLU && MIN)
		cur_pos = 0;
		
		if (!ENT)
		{
			calib_ptr_deep++;
			lcd_home();
			lcd_print("POD.GAZ ");
			
			write_word(EEP_STW1,calib_gas);

			// TODO : WRITE GAS TO P & K
			
			
			WAITMS(1500);
		}
		break;
		
		case 0x03:
		show_media(meas,0x80);
		
		if (!ENT)
		{

			tp_repeat = 2;
			tp_data = calib_gas * 10;
			tp_addr = P_ADDR_CALHS;
			
			wait = 0;
			lcd_home();
			lcd_print(" CZEKAJ ");
			while(1)
			{
				WAITMS(100);
				if (meas == CODE_SENS)
					break;
				if (meas == CODE_SERVC)
				{
					kalib_serwis(1,calib_gas | (1 << 15));
					return;
				}
				wait++;
				if (wait > 120)
				{
					lcd_home();
					lcd_print("Error ! ");
					WAITMS(1500);
					calib_ptr_deep = 0;
					calib_ptr = CM_STWYS;
					return;
				}
			}
			
			
			tk_data = calib_gas;// | (1 << 15);
			tk_addr = K_ADDR_HS;
			tk_repeat = 3;

		
			lcd_home();
			lcd_print("UST");
			fuse1(str,calib_gas);
			lcd_print(str);
			lcd_print("%");
			WAITMS(2000);
			lcd_print(" ZAPIS! ");
			WAITMS(1000);
			calib_ptr_deep = 0;
			calib_ptr = CM_WYJ;
		}
		
	}
	
	
}
#endif


#ifdef MEDIA_CH4

void cal_low()
{
	char str[8];

	if (meas & 0x8000)
	{
		calib_ptr = CM_STWYS;
		calib_ptr_deep = 0;
		tp_addr = P_ADDR_RESET_DEFAULTS;
		lcd_home();
		lcd_print("WYSOKIE!");
		WAITMS(3000);
		return;
	}
			
	switch (calib_ptr_deep)
	{
		lcd_home();
		
		case 0x01:
			lcd_print(" POD.POW");
			wait_deliver_P();
			tp_addr = P_ADDR_L_RESET;
			wait_deliver_P();
			WAITMS(1500);
			
			calib_ptr_deep++;
			break;
		case 0x02:

			show_media(meas,0x80);		// show spec
			if (!ENT)
			{
				up_time = 1;
				if (meas & 0x1000)
				{
					if ((meas & 0x0FFF) > 50)	// -0.50%
					{
						kalib_serwis(0,(1<<14));
						// TODO : Write serwis Z to K
						//tp_data = (1 << 15);
						//tp_addr = P_ADDR_CALLZ;
						return;
					}
				}
				else
				{
					if ((meas & 0x0FFF) > 50)	// +0.50%
					{
						kalib_serwis(0,(1<<14));
						// TODO : Write serwis Z to K
						//tp_data = (1 << 15);
						//tp_addr = P_ADDR_CALLZ;
						return;
					}
				
				}			
				p_ack = 0;
				tp_data = 0;
				tp_addr = P_ADDR_CALLZ;
				tk_addr = K_ADDR_LZ;
				tk_data = (1 << 14);
				tk_repeat = 3;
				// TODO : WRITE ZERO IN K
				
				calib_ptr_deep++;
				lcd_home();
				lcd_print("UST0.00%");
				wait_deliver_P();
				WAITMS(1000);
				lcd_print(" ZAPIS! ");
				WAITMS(1000);
			}
			break;
		case 0x03:
			lcd_print(" UST.GAZ");
			WAITMS(1000);
			calib_ptr_deep++;
			
			calib_gas = read_word(EEP_STN);
			break;
			
		case 0x04:
			fuse2(str,calib_gas);
			lcd_print("GAZ:");
			lcd_print(str);
			lcd_print(" ");
		
			if (!PLU)
			{
				calib_gas++;
				if (calib_gas > 240)
				calib_gas = 240;
				up_time = 1;
			}
			
			if (!MIN)
			{
				calib_gas--;
				if (calib_gas < 170)
				calib_gas = 170;
				up_time = 1;
			}
			
			if (!ENT)
			{
				calib_ptr_deep++;
				lcd_home();
				lcd_print("POD.GAZ.");
				
				write_word(EEP_STN,calib_gas);
				
				// TODO : WRITE GAS TO P & K
				
				up_time = 1;
				
				WAITMS(1000);
			}
			break;
				
		case 0x05:
		
			show_media(meas,0x80);
			
			if (!ENT)
			{
				up_time = 1;
				#ifndef MEDIA_CH4IR
				if (meas & 0x1000)	// 12bit
				{
					kalib_serwis(1,calib_gas | (1 << 14));
					tp_addr = P_ADDR_RESET_DEFAULTS;
					WAITMS(500);
					return;
				}
				else
				{
					if (((meas & 0x0FFF) < calib_gas - 100) || ((meas & 0x0FFF) > calib_gas + 100))
					{
						kalib_serwis(1,(1<<14) | calib_gas);
						WAITMS(500);
						return;
					} 
				}
				#endif
				tp_data = calib_gas;
				tp_addr = P_ADDR_CALLS;
				
				tk_data = calib_gas | (1 << 14);
				tk_addr = K_ADDR_LS;
				tk_repeat = 3;
				/// TODO: WRITE KALIB OK TO P
				/// TODO: WRITE KALIB OK TO K
				
				lcd_home();
				lcd_print("UST");
				fuse2(str,calib_gas);
				lcd_print(str);
				lcd_print("%");
				WAITMS(2000);
				calib_ptr_deep = 0;
				calib_ptr = CM_WYJ;

			}
		
	}
	
	
}

#endif


#ifdef MEDIA_CH4IR

void cal_low()
{
	char str[8];
	u8 wait = 0;
	

	switch (calib_ptr_deep)
	{
		lcd_home();
		case 0x01:
		lcd_print(" UST.GAZ");
		WAITMS(1000);
		calib_ptr_deep++;
		
		calib_gas = read_word(EEP_STN);
		break;
		
		case 0x02:
		fuse2(str,calib_gas);
		lcd_print("GAZ:");
		lcd_print(str);
		lcd_print(" ");
		
		if (!PLU)
		{
			up_time = 1;
			calib_gas++;
			if (calib_gas > 240)
			calib_gas = 240;
		}
		
		if (!MIN)
		{
			up_time = 1;
			calib_gas--;
			if (calib_gas < 170)
			calib_gas = 170;
		}
		
		if (!ENT)
		{
			up_time = 1;
			calib_ptr_deep++;
			lcd_home();
			lcd_print("POD.GAZ.");
			
			write_word(EEP_STN,calib_gas);
			
			// TODO : WRITE GAS TO P & K
			
			
			WAITMS(1000);
		}
		break;
		
		case 0x03:
		
		show_media(meas,0x80);
		

		
		if (!ENT)
		{
			up_time = 1;
			calib_gas = read_word(EEP_STN);
			tp_repeat = 2;
			tp_data = calib_gas;
			tp_addr = P_ADDR_CALLS;
			lcd_home();
			lcd_print(" CZEKAJ ");
			
			wait = 0;
			while (1)
			{
				WAITMS(100);
				if (meas == CODE_SERVC)
				{
					kalib_serwis(1,calib_gas | (1 << 14));
					return;
				}
				if (meas == CODE_SENS)
				{
					break;
				}
				wait++;
				if (wait > 70)
				{
					lcd_home();
					lcd_print("Error!  ");
					calib_ptr_deep = 0;
					calib_ptr = CM_STNIS;	
					WAITMS(1000);
					return;
				}
			}
			
			
			tk_data = calib_gas;// | (1 << 14);
			tk_addr = K_ADDR_LS;
			/// TODO: WRITE KALIB OK TO P
			/// TODO: WRITE KALIB OK TO K
			
			lcd_home();
			lcd_print("UST");
			fuse2(str,calib_gas);
			lcd_print(str);
			lcd_print("%");
			WAITMS(2000);
			calib_ptr_deep = 0;
			calib_ptr = CM_STWYS;

		}
		
	}
}

#endif


#ifdef MEDIA_CH4IR

void cal_zero()
{
	char str[8];
	u8 wait = 0;
	

	switch (calib_ptr_deep)
	{
		lcd_home();
		
		case 0x01:
		lcd_print(" POD.POW");
		WAITMS(1500);
		
		calib_ptr_deep++;
		break;
		case 0x02:

		show_media(meas,0x80);		// show spec
		if (!ENT)
		{
			up_time = 1;
			tp_repeat = 2;
			tp_data = 0;
			tp_addr = P_ADDR_CALLZ;
			
			lcd_home();
			lcd_print(" CZEKAJ ");
			wait = 0;
			while (1)
			{
				WAITMS(100);
				if (meas == CODE_SERVZ)
				{
					kalib_serwis(0,(1<<14));
					return;
				}
				if (meas == CODE_ZERO)
				{
					break;
				}

				wait++;
				if (wait > 120)
				{
					lcd_home();
					lcd_print("Error!  ");
					calib_ptr_deep = 0;
					calib_ptr = CM_STNIS;
					WAITMS(1000);
					return;
				}
			}
			
			tk_data = (1 << 14);
			tk_addr = K_ADDR_LZ;
			tk_repeat = 3;
			// TODO : WRITE ZERO IN K
			
			calib_ptr_deep++;
			lcd_home();
			lcd_print("UST0.00%");
			wait_deliver_P();
			WAITMS(1000);
			lcd_print(" ZAPIS! ");
			WAITMS(1000);
			
			calib_ptr_deep = 0;
			calib_ptr = CM_STNIS;			
			
		}
		break;
		
	}
}

#endif

